import { Project, InterfaceDeclaration } from 'ts-morph'

const typeFiles = import.meta.glob('@/types/*.ts', { eager: true })
export const getFile = () => {
  const project = new Project({
    useInMemoryFileSystem: true,
  })

  console.log(typeFiles['/src/types/staff.ts'])
  // 获取staff.ts文件
  const staffFile = project.addDirectoryAtPath('/types/staff.ts')
  console.log(staffFile)

  //   const sourceFile = project.createSourceFile(
  //     'temp.ts',
  //     `
  // interface User {
  //   /** 名字 */
  //   name: string;
  //   /** 年龄 */
  //   age: number;
  //   /** 邮件 */
  //   email?: string;
  // }
  // `,
  //   )
  //   console.log(sourceFile)

  //   // 解析 interface
  //   const userInterface = sourceFile.getInterfaceOrThrow('User')
  //   const properties = userInterface.getProperties()

  //   // 生成注释映射对象
  //   const fieldMap: Record<string, string> = {}

  //   properties.forEach((prop) => {
  //     const name = prop.getName()
  //     const jsDocs = prop.getJsDocs()
  //     const comment = jsDocs.length > 0 ? jsDocs[0].getComment() || name : name
  //     fieldMap[name] = comment
  //   })

  //   console.log(fieldMap)
  //   // 输出: { name: "名字", age: "年龄", email: "邮箱" }
}
